package com.gdones.gpt.bus.paytemplate.controller;


import com.gdones.common.core.annotations.MySysLog;
import com.gdones.common.core.annotations.MySysLogOpration;
import com.gdones.common.core.dto.MyResult;
import com.gdones.gpt.bus.paytemplate.dto.GptPayTemplate;
import com.gdones.gpt.bus.paytemplate.dto.PayTemplateDto;
import com.gdones.gpt.bus.paytemplate.service.IGptPayTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author GaoJingBo
 * @since 2023-06-11
 */
@RestController
@RequestMapping("/paytemplate")
@Slf4j
@Api(tags = "GPT支付模板管理")
@RefreshScope
public class GptPayTemplateController {

    @Resource(name = "gptPayTemplateServiceImpl")
    private IGptPayTemplateService gptPayTemplateServiceImpl;

    @GetMapping("/list")
    @ApiOperation("GPT支付模板管理-列表(不分页)")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "列表(不分页)",methodType = MySysLogOpration.GET)
    public MyResult page(GptPayTemplate dto){

        log.debug("--GPT支付模板管理：列表(不分页)");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.mylist(dto);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-列表(不分页)-异常");
        }
        return result;
    }

    @GetMapping("/getByID")
    @ApiOperation("GPT支付模板管理-查询文章信息")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "查询文章信息",methodType = MySysLogOpration.GET)
    public MyResult page(String id){

        log.debug("--GPT支付模板管理：查询文章信息");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.getByID(id);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-查询文章信息-异常");
        }
        return result;
    }

    @PostMapping("/add")
    @ApiOperation("GPT支付模板管理-添加")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "添加",methodType = MySysLogOpration.POST)
    public MyResult add(@RequestBody GptPayTemplate dto){

        log.debug("--GPT支付模板管理：添加");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.add(dto);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-添加-异常");
        }
        return result;
    }

    @PutMapping("/update")
    @ApiOperation("GPT支付模板管理-修改")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "修改",methodType = MySysLogOpration.PUT)
    public MyResult update(@RequestBody GptPayTemplate dto){

        log.debug("--GPT支付模板管理：修改");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.update(dto);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-修改-异常");
        }
        return result;
    }

    @PutMapping("/afterPayToActiveStaff")
    @ApiOperation("GPT支付模板管理-支付完成后根据支付模板激活用户")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "支付完成后根据支付模板激活用户",methodType = MySysLogOpration.PUT)
    public MyResult afterPayToActiveStaff(@RequestBody PayTemplateDto dto){

        log.debug("--GPT支付模板管理：支付完成后根据支付模板激活用户");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.afterPayToActiveStaff(dto);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-支付完成后根据支付模板激活用户-异常");
        }
        return result;
    }

    @DeleteMapping("/deletes")
    @ApiOperation("GPT支付模板管理-删除")
    @MySysLog(modelName="GPT支付模板管理",methodDesc = "删除",methodType = MySysLogOpration.DELETE)
    public MyResult deletes(String ids){

        log.debug("--GPT支付模板管理：删除");
        MyResult result = new MyResult();

        try {

            result = gptPayTemplateServiceImpl.deletes(ids);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("GPT支付模板管理-删除-异常");
        }
        return result;
    }
    
}
